package br.com.sistema.control;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

import br.com.sistema.dao.ProdutoDAO;
import br.com.sistema.dao.ProdutoDAOImplements;
import br.com.sistema.entidade.Produto;
import br.com.sistema.util.Constantes;
import br.com.sistema.util.LancamentosDeMensagens;

public class ProdutoRN implements Serializable{

	private static final long serialVersionUID = 1L;
	private ProdutoDAO produtoDAO;
	
	public ProdutoRN(){
		this.produtoDAO = new ProdutoDAOImplements();
	}
	
	public boolean salvar(Produto produto) {
		if(produto != null){
			if(produto.getId() != null && produto.getId() != 0){
				this.produtoDAO.atualizar(produto);
				LancamentosDeMensagens.mensagemInfo(Constantes.ALTERADO_COM_SUCESSO.getValue());
			}else{
				produto.setDataCadastro(new Date());
				produto.setQuantidadeVendida(0);
				this.produtoDAO.salvar(produto);
				LancamentosDeMensagens.mensagemInfo(Constantes.SALVO_COM_SUCESSO.getValue());
			}
			return true;
		}
		return false;
		
	}

	public void remover(Integer id) {
		this.produtoDAO.remover(id);
	}

	public Produto pesquisarPorNome(String descricao) {
		return this.produtoDAO.pesquisarPorDescricao(descricao);
	}
	
	public Produto pesquisarPorCodigo(Integer id){
		return this.produtoDAO.buscar(id);
	}
	
	public List<Produto> listar(){
		return this.produtoDAO.listar();
	}
	
	public List<Produto> listarProdutosMaisVendidos(){
		return this.produtoDAO.listarProdutosMaisVendidos();
	}
}
